package br.org.acessobrasil.portal.action.itemConteudo;

import org.apache.log4j.Logger;
import org.springframework.transaction.annotation.Transactional;

import br.org.acessobrasil.portal.facade.ItemConteudoFacade;
import br.org.acessobrasil.portal.modelo.Usuario;

/**
* Sistema de publica��o e despublica��o em massa.
* 
* Ao ser requisitado a publica��o/despublica��o,
* ele verifica quais checkbox est�o marcador e ent�o efetua a a��o chamando o facede.
* 
* @author Enrique Baliosian
*
*/

@Transactional
public class AlterarEstadoPublicacaoAction extends BaseItemConteudo{
	private static final long serialVersionUID = -8279981160358978703L;
	private static Logger logger = Logger.getLogger(AlterarEstadoPublicacaoAction.class);
	
	public AlterarEstadoPublicacaoAction(){
	}

	@Override
	public String execute() throws Exception {
		
		String[] listaItensSelecionados = getRequest().getParameterValues("listaItensSelecionados");
		if(listaItensSelecionados == null)
			return SUCCESS;
		Usuario usuario = getUsuarioLogado();
		int totalReplace = 0;
		logger.debug("Alterar "+listaItensSelecionados.length + " itens de conteudo");
		for (int i = 0; i < listaItensSelecionados.length; i++) {
			Long nuItemConteudo = Long.valueOf(listaItensSelecionados[i]);
			logger.debug("Alterando item Conteudo = "+nuItemConteudo);
			if(getRequest().getParameter("publicar") != null){
				getItemConteudoFacade().publicar(nuItemConteudo , usuario);
			}else if(getRequest().getParameter("despublicar") != null){
				getItemConteudoFacade().despublicar(nuItemConteudo , usuario);
			}else if(getBtnFindAndReplace()!=null){//Localizar e substituir
				int substituiu = getItemConteudoFacade().findAndReplace(nuItemConteudo, usuario,getProcurar(),getSubstituir());
				if(substituiu!=0){
					totalReplace++;
				}
			}
		}
		if(getBtnFindAndReplace()!=null){
			usuario.addActionMessage(totalReplace + " ocorr&ecirc;ncias foram substituidas.");
		}
		return SUCCESS;
	}

}
